package com.coocaa.ops.admin.v1.dmp.tag.provider.impl;

import com.coocaa.ops.admin.v1.dmp.tag.constant.DmpTagTypeConstants;
import com.coocaa.ops.plus.core.third.dmp.DmpFeignClientService;
import com.coocaa.ops.admin.v1.dmp.tag.model.DmpPolicyQueryModel;
import com.coocaa.ops.admin.v1.dmp.tag.model.DmpTagInfo;
import com.coocaa.ops.admin.v1.dmp.tag.model.DmpTagQueryModel;
import com.coocaa.ops.admin.v1.dmp.tag.provider.IDmpTagQueryProvider;
import com.coocaa.ops.admin.v1.dmp.tag.util.DmpTagDataConverter;
import com.coocaa.ops.common.core.base.model.PageResultModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @author tangminghong
 * @date 2020-06-18
 */
@Service
public class DmpTagQueryProviderImpl implements IDmpTagQueryProvider {

    @Autowired
    private DmpFeignClientService dmpFeignClientService;

    /**
     * 获取人群策略标签信息
     *
     * @param queryModel
     * @param userId
     * @return
     */
    @Override
    public List<DmpTagInfo> getTagListForCrowdPolicy(DmpTagQueryModel queryModel, Integer userId) throws Exception {
        Map<String, String> queryMap = DmpTagDataConverter.getQueryMapForCrowdPolicy();
        String result = dmpFeignClientService.getDmpPolicyList(queryMap);
        return DmpTagDataConverter.converterTagList(result, DmpTagTypeConstants.CROWD_POLICY);
    }

    /**
     * 获取具体人群标签信息
     *
     * @param queryModel
     * @param userId
     * @return
     */
    @Override
    public List<DmpTagInfo> getTagListForCrowd(DmpTagQueryModel queryModel, Integer userId) throws Exception {
        Map<String, String> queryMap = DmpTagDataConverter.getQueryMapForCrowd(queryModel);
        String result = dmpFeignClientService.getCrowdList(queryMap);
        return DmpTagDataConverter.converterTagList(result, DmpTagTypeConstants.CROWD);
    }

    /**
     * 获取分页数据-人群策略
     *
     * @param queryModel
     * @param userId
     * @return
     */
    @Override
    public PageResultModel<DmpTagInfo> getPageResultForCrowdPolicy(DmpPolicyQueryModel queryModel, Integer userId) throws Exception {
        Map<String, String> queryMap = DmpTagDataConverter.getPageQueryMapForCrowdPolicy(queryModel);
        String result = dmpFeignClientService.getDmpPolicyList(queryMap);
        return DmpTagDataConverter.converterPageResultForCrowdPolicy(result);
    }
}
